#include "gdevice.h"

// 通过key值(buffer[2])来查找对应设备
struct gdevice *find_device_by_key(struct gdevice *phead, int key)
{
    struct gdevice *pcur = phead;

    if (NULL == phead)
    {
        return NULL;
    }

    while (pcur != NULL)
    {
        if (pcur->key == key)
        {
            return pcur;
        }
        pcur = pcur->next;
    }

    return NULL;
}

// 根据 gdevice结构体设置GPIO引脚状态 输入输出 高低电平
int set_gpio_gdevice_status(struct gdevice *pdev)
{
    if (NULL == pdev)
    {
        return -1;
    }

    // -1表示不需要引脚配置
    if (-1 != pdev->gpio_pin)
    {
        if (-1 != pdev->gpio_pin)
        {
            pinMode(pdev->gpio_pin, pdev->gpio_mode);
        }

        if (-1 != pdev->gpio_status)
        {
            digitalWrite(pdev->gpio_pin, pdev->gpio_status);
        }
    }

    return 1;
}
